Main
Expression specificity (tau)
Plot - Tau distribution
All genes with tau
if (!params$all.nonzero.matrix) {
plot_tau_distribution(filtered.samples$tau,
tau.low=params$tau.cutoff, tau.high=params$tau.cutoff,
ylim=c(0.0,1.5))
} else {
plot_tau_distribution(filtered.samples$tau,
tau.low=params$tau.cutoff, tau.high=params$tau.cutoff,
ylim=c(0.0,3.6))
}
With tau and expression variability data
tau.with.var <-
filtered.samples$tau[names(filtered.samples$tau) %in% levels(as.factor(expr.var.common$GeneID))]
if (!params$all.nonzero.matrix) {
plot_tau_distribution(tau.with.var,
tau.low=params$tau.cutoff, tau.high=params$tau.cutoff,
ylim=c(0.0,1.5))
} else {
plot_tau_distribution(tau.with.var,
tau.low=params$tau.cutoff, tau.high=params$tau.cutoff,
ylim=c(0.0,3.6))
}
Variability as a function of tau
Reorder organs for plotting
expr.var.rank.common <- expr.var.common %>%
dplyr::inner_join(expr.rank.first, by="GeneID")
if ("Sex" %in% colnames(filtered.samples$metadata)) {
levels.order <-
c("brain","eye","intestine","liver",
"heart","muscle","gills","pectoral_fin",
"ovary","testis")
} else {
levels.order <-
c("brain","eye","intestine","liver",
"heart","muscle","gills","pectoral_fin","gonads")
}
# Exclude missing conditions from factor levels
levels.exclude <- setdiff(levels.order, levels(as.factor(expr.var.rank.common$Tissue)))
# Reorder levels for plotting
expr.var.rank.common$Tissue <-
factor(expr.var.rank.common$Tissue, levels=levels.order, exclude=levels.exclude)
Density plots
Variability rank vs. mean expression
density_plot_variability_vs_mean(expr.var.rank.common, title=params$species.name)
Mean expression vs. tau
density_plot_mean_vs_tau(expr.var.rank.common, title=params$species.name)
Residual variation vs. tau
density_plot_resid_var_vs_tau(expr.var.rank.common, title=params$species.name)
Variability rank vs. tau
density_plot_variability_vs_tau(expr.var.rank.common, title=params$species.name)
Boxplots by tau quantiles
Split by tau quantiles
tau.with.var.quantiles <- quantile(tau.with.var)
expr.var.rank.common$Quantile <-
apply(expr.var.rank.common, MARGIN=1, function(r) {
if (r[["tau"]] <= tau.with.var.quantiles["25%"]) { "Q1" }
else if (r[["tau"]] <= tau.with.var.quantiles["50%"]) { "Q2" }
else if (r[["tau"]] <= tau.with.var.quantiles["75%"]) { "Q3" }
else { "Q4" }
})
print(tau.with.var.quantiles)
## 0% 25% 50% 75% 100%
## 0.04864321 0.31500191 0.52670790 0.77557613 1.00000000
Mean expression
boxplot_mean_by_tau_quantiles(expr.var.rank.common, title=species.name)
Residual variation
boxplot_resid_var_by_tau_quantiles(expr.var.rank.common, title=species.name)
Variability rank
boxplot_variability_by_tau_quantiles(expr.var.rank.common, title=species.name)
Variability of organ-biased genes
Classify broadly expressed and organ-biased genes (with subsets)
Tissue <- as.factor(expr.var.rank.common$Tissue)
# Per organ, classify genes by organ bias
if ("Sex" %in% colnames(expr.var.rank.common)) {
expr.var.bias.by.condition <- vector(mode="list", length=2)
names(expr.var.bias.by.condition) <- c("F","M")
for (s in c("F","M")) {
expr.var.bias.by.condition[[s]] <- vector(mode="list", length=length(levels(Tissue)))
names(expr.var.bias.by.condition[[s]]) <- levels(Tissue)
for (t in levels(Tissue)) {
expr.var.bias.by.condition[[s]][[t]] <- expr.var.rank.common %>%
dplyr::filter(Sex==s) %>%
dplyr::filter(Tissue!=t) %>%
classify_genes_by_organ_bias(tau.cutoff=params$tau.cutoff)
# Reorder factor levels
expr.var.bias.by.condition[[s]][[t]]$TissueBias <-
factor(expr.var.bias.by.condition[[s]][[t]]$TissueBias, levels=c("broad","focal",t,"other"))
}
}
} else {
expr.var.bias.by.condition <- vector(mode="list", length=length(levels(Tissue)))
names(expr.var.bias.by.condition) <- levels(Tissue)
for (t in levels(Tissue)) {
expr.var.bias.by.condition[[t]] <- expr.var.rank.common %>%
dplyr::filter(Tissue!=t) %>%
classify_genes_by_organ_bias(tau.cutoff=params$tau.cutoff)
# Reorder factor levels
expr.var.bias.by.condition[[t]]$TissueBias <-
factor(expr.var.bias.by.condition[[t]]$TissueBias, levels=c("broad","focal",t,"other"))
}
}
Boxplots by organ bias
Mean expression
if ("Sex" %in% colnames(expr.var.rank.common)) {
for (s in c("F","M")) {
for (t in levels(Tissue)) {
print(boxplot_mean_by_organ_bias(expr.var.bias.by.condition[[s]][[t]],
species=params$species, tissue=t, sex=s))
}
}
} else {
for (t in levels(Tissue)) {
print(boxplot_mean_by_organ_bias(expr.var.bias.by.condition[[t]],
species=params$species, tissue=t))
}
}